This description relates to an event queue for processing events with heterogenous characteristics.
Data processing systems often deal with many different kinds of input events. For example, in a telecommunications domain, some events may have “real-time” characteristics, for example, relating to the setup, routing, and/or tear-down of telephone calls. Some events may be “near real-time”, for example, related to call record handling, for example, occurring once per call. Other events may be less frequent, for example, related to billing or periodic maintenance tasks. Together, these input events may constitute massive flows that must be processed, all the while providing adequate response for particular kinds of events (e.g., near real-time event).
One approach to designing a system that deals with such heterogeneous inputs is to have separate software and/or hardware structures dedicated to different of these kinds of input, thereby enabling different types of processing that is appropriate for the different kinds. Some examples of different types of processing may differ in whether events should be processed as quickly as possible, be processed in the order they were generated to ensure proper business logic, or be processed at a low priority to avoid steeling computation resources from higher priority tasks.
There is a cost to maintaining separate software and/or hardware structures, for example, due to the human cost of maintaining complex systems, as well as a technological cost resulting from potential under-utilization of dedicated resources.